package com.zmn.oms.dubbo.interfaces.zmn.master.order;

import com.zmn.common.dto2.ResponseDTO;
import com.zmn.oms.common.dio.normal.master.MasterWorkCountDIO;
import com.zmn.oms.common.dro.normal.master.MasterCompletedWorkCount;
import com.zmn.oms.common.dro.normal.master.MasterWorkCountDRO;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * 类描述：工程师工单统计
 *
 * @author heciqi
 * @date 2020/03/27 11:00
 */
public interface MasterWorkStatRemoteService {

    /**
     * 工程师完成工单数
     *
     * @param masterIds
     * @param startTime
     * @param endTime
     * @return
     */
    @ApiOperation(value = "工程师完成工单数", response = ResponseDTO.class)
    ResponseDTO<List<MasterCompletedWorkCount>> listMasterCompletedWorkCount(@ApiParam(value = "工程师ids", required = true)
                                                                             @NotNull(message = "参数不能为空")
                                                                             @Size(min = 1, max = 500, message = "数组长度不能超过500") List<Integer> masterIds,
                                                                             @ApiParam(value = "开始时间", required = true)
                                                                             @NotNull(message = "开始时间不能为空") Date startTime,
                                                                             @ApiParam(value = "结束时间", required = true)
                                                                             @NotNull(message = "结束时间不能为空") Date endTime);

    /**
     * 统计工程师工单数
     *
     * @param masterWorkCountDIO
     * @return
     */
    @ApiOperation(value = "工程师完成工单数", response = ResponseDTO.class)
    ResponseDTO<List<MasterWorkCountDRO>> listMasterWorkCount(@ApiParam(value = "工程师idList", required = true)
                                                              @NotNull(message = "参数不能为空")
                                                                      MasterWorkCountDIO masterWorkCountDIO);
}
